
package proyectoprogracuestionario;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.LinkedList;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;



public class VentanaRB extends JPanel implements ActionListener{
    
// Componentes que serán agregados a mi Ventana.
    private JPanel superior, segundo, envio, panel1, panel2, panel3, panel4, panel5, panel6, panel7, panel8, panel0;
    private JButton nuevo, atras, hecho, edit1, edit2, edit3, edit4, edit5, edit6, edit7, edit8, edit0, hec;
    private JLabel titulo, recomendacion, auxiliar;
    private JRadioButton preg1, preg2, preg3, preg4, preg5, preg6, preg7, preg8, preg0;
    //private ArrayList respuestas;
    private ArrayList<JPanel> preguntas;
    private ArrayList<JTextField> pregs;
    private ArrayList<Boolean> respuestasCorrectas;
    private ArrayList<Boolean> respuestasUsuario;
    ArrayList<JRadioButton> opcions = new ArrayList<JRadioButton>();
    private JTextField tp1, tp2, tp3, tp4, tp5, tp6, tp7, tp8, tp0, pregunta;
    private int aux=2, aux1=0;
     
    // Constructor
    public VentanaRB(){
         
         
         this.setSize(720,600);
         this.setLayout(new GridLayout(20,1,5,5));
         //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         //this.setTitle("MI ventana de Ventas de Juegos");     
         // Instanciamos y Agregamos los componente al panel
        preguntas = new ArrayList<JPanel>();
        pregs = new ArrayList<JTextField>();
        respuestasUsuario = new ArrayList<Boolean>();
        respuestasCorrectas = new ArrayList<Boolean>();
        
        
//        paneles[8] = new JPanel();
         
        superior = new JPanel();
        segundo = new JPanel();
        panel1 = new JPanel();
        
        
        nuevo = new JButton("nuevo");
        atras = new JButton("atras");
        edit1 = new JButton("borrar");
        hecho = new JButton("Hecho..");
        
        recomendacion = new JLabel("Seleccione la casilla si la respuesta es afirmativa");
        recomendacion.setForeground(Color.ORANGE);
        titulo = new JLabel("Ingrese la pregunta");
        auxiliar = new JLabel("hola: "+aux1);
        
        preg1 = new JRadioButton("Ingrese su opcion");
        tp1 = new JTextField(20);
        pregunta = new JTextField(20);
        
        
        
        
        superior.setLayout(new FlowLayout());
        superior.add(nuevo);
        superior.add(atras);
        superior.add(hecho);
        superior.add(recomendacion);
        superior.add(auxiliar);
        superior.setBackground(Color.DARK_GRAY);
        auxiliar.setForeground(Color.DARK_GRAY);
        
        segundo.add(titulo);
        segundo.add(pregunta);
        segundo.setBackground(Color.orange);
        
        panel1.add(preg1);
        panel1.add(edit1);
        panel1.add(tp1);
        
        preguntas.add(panel1);
        pregs.add(tp1);
        opcions.add(preg1);
             
        this.add(superior);
        this.add(segundo);
        this.add(preguntas.get(0));
        
    
        
        nuevo.addActionListener(this);
        atras.addActionListener(this);
        edit1.addActionListener(this);
        hecho.addActionListener(this);
       
        
        
          }  
    // Implementación del método abstracto
    public void actionPerformed(ActionEvent e) {
        
        int auxi = preguntas. size();
        if(e.getSource() == nuevo){
            
            if(auxi < 18)
            {
            recomendacion.setText("Seleccione la casilla si la respuesta es afirmativa");
            this.doLayout();  
              aux++;
              aux1++;
            auxiliar.setText("hola: "+aux1);
            JPanel nuevo = new JPanel();
            JButton b = new JButton("borrar");
            JTextField tp = new JTextField(20);
        
            JRadioButton preg = new JRadioButton("Ingrese su opcion");
            
            nuevo.add(preg);
            nuevo.add(b);
            nuevo.add(tp);
            
            preguntas.add(nuevo);
            pregs.add(tp);
            opcions.add(preg);
            this.add(nuevo);
            b.addActionListener(this);
            this.doLayout();
            }
            else
            {
               JOptionPane.showMessageDialog(null, "NUMERO EXCEDIDO... No se puede agregar mas opciones");
              
            }
          
 
        }
        for(int i = 0; i < preguntas.size(); i++)
        {
                       
            
            if(e.getSource() == preguntas.get(i).getComponent(1))
            {   
                                           
                preguntas.get(i).getComponent(0).getParent().setVisible(false);
                aux--;
                 aux1++;
                 //la declaracion siguiente por alguna razon actualiza la ventana, sin ella no funcionan los botones
          /*esta declaracion->*/  auxiliar.setText("hola: "+aux1);
                //pregunta.setText("hola"+preguntas.size()+pregs.size());
            
                this.remove(preguntas.get(i).getComponent(0).getParent());
                preguntas.remove(i);
                pregs.remove(i);
                opcions.remove(i);
                
                this.doLayout();
                
            }
        }
        if(e.getSource() == hecho){
             ArrayList<JRadioButton> opciones = new ArrayList<JRadioButton>();   
            //LinkedList<boolean> respuestas = new LinkedList<boolean>();
             
            for(int i = 0; i<preguntas.size() ; i++)
            {
                respuestasCorrectas.add(opcions.get(i).isSelected());
                JRadioButton nueva = new JRadioButton(pregs.get(i).getText());
                opciones.add(nueva);
            }
                envio = new JPanel();
            JFrame v = new JFrame();
                
                
              
           
 
        }
            
        
 
        
    }
    
    public void vista()
    {
        this.remove(superior);
        titulo.setText("La pregunta es: ");
        pregunta.setFocusable(false);
        for(int i = 0; i < preguntas.size(); i++)
        {
            opcions.get(i).setText(pregs.get(i).getText());
            preguntas.get(i).remove(1);
            preguntas.get(i).remove(1);
            if(opcions.get(i).isSelected())
                respuestasCorrectas.add(Boolean.TRUE);
            else
                respuestasCorrectas.add(Boolean.FALSE);
            
            opcions.get(i).setSelected(false);
        }
//        this.update(null);
        this.updateUI();
        this.doLayout();
        
    }
    
    public ArrayList<Boolean> ObtenerRespuestas()
    {
        for(int i = 0; i<preguntas.size() ; i++)
            {
                respuestasUsuario.add(opcions.get(i).isSelected());
            }
        return respuestasUsuario;
    }
    
    public String respuestasDeUsuario()
    {
        String resps = "";
        for(int i = 0; i < respuestasUsuario.size(); i++)
        {
        resps = resps +respuestasUsuario.get(i).toString()+"-";
        }
        return resps;
    }
    public String respuestasCorrectass()
    {
        String resps = "";
        for(int i = 0; i < respuestasCorrectas.size(); i++)
        {
        resps = resps +respuestasCorrectas.get(i).toString()+"-";
        }
        return resps;
    }
    public ArrayList<String> getSolucion() {
        ArrayList<String> solucion = new ArrayList();
        for(int i = 0; i < respuestasCorrectas.size(); i++)
        {
         solucion.add(respuestasCorrectas.get(i).toString());
        }
        
        return solucion;
    }
   // public String getTituloP(){
     //   return tituloP;
    //}
}
 